<!DOCTYPE html>
<html lang="{{ .Site.LanguageCode }}">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <!-- Title -->
    <title>{{ if .Title }}{{ .Title }} - {{ end }}{{ .Site.Title }}</title>
    <!-- Meta -->
    {{- if eq .Kind "page" }}
    <meta name="description" content="{{ .Summary }}">
    <meta name="author" content="{{ .Params.author | default .Site.Params.author }}">
    {{- else }}
    <meta name="description" content="{{ .Site.Params.description }}">
    <meta name="author" content="{{ .Site.Params.author }}">
    {{- end }}
    <!-- Styles -->
    <link href="{{ "an-old-hope.min.css" | absURL }}" rel="stylesheet">
    <link href="{{ "style.css" | absURL }}" rel="stylesheet">
    <!-- Favicons -->
    <link rel="apple-touch-icon" href="{{ "apple-touch-icon.png" | absURL }}">
    <link rel="icon" href="{{ "favicon.ico" | absURL }}">
    <!-- Generator -->
    {{- hugo.Generator }}
    <!-- RSS -->
    <link rel="alternate" type="application/atom+xml" href="{{ "index.xml" | absURL }}" title="{{ .Site.Title }}">
    <!-- Misc -->
    {{- if eq (getenv "HUGO_ENV") "production" | or (eq .Site.Params.env "production") }}
    {{- template "_internal/google_analytics_async.html" . }}
    {{- template "_internal/opengraph.html" . }}
    {{- end }}
    <!-- Script -->
    <script>
      function setTheme() {
        const time = new Date();

        const prev = localStorage.getItem('date');
        const date = String(time.getMonth() + 1) + '.' + String(time.getDate());

        const now = time.getTime();
        let sunrise;
        let sunset;

        function setBodyClass() {
          if (now > sunrise && now < sunset) return;
          document.body.classList.add('dark');
        }

        if (date !== prev) {
          fetch('https://api.ipgeolocation.io/astronomy?apiKey=5ed37d85103e4defa5df4c5298ed5215')
            .then(res => res.json())
            .then(data => {
              sunrise = data.sunrise.split(':').map(Number);
              sunset = data.sunset.split(':').map(Number);
            })
            .catch(() => {
              sunrise = [7, 0];
              sunset = [19, 0];
            })
            .finally(() => {
              sunrise = time.setHours(sunrise[0], sunrise[1], 0);
              sunset = time.setHours(sunset[0], sunset[1], 0);
              setBodyClass();
              localStorage.setItem('sunrise', sunrise);
              localStorage.setItem('sunset', sunset);
            });
          localStorage.setItem('date', date);
        } else {
          sunrise = Number(localStorage.getItem('sunrise'));
          sunset = Number(localStorage.getItem('sunset'));
          setBodyClass();
        }
      }
    </script>
  </head>
  <body class="{{ if eq .Kind `page` }}single{{ else }}list{{ if .IsHome }} home{{ end }}{{ end }}">
    <script>
      setTheme();
    </script>
    <header class="header">
      <nav class="nav">
        {{- if .IsHome }}
        <h1 class="logo"><a href="{{ "" | absURL }}">{{ .Site.Title }}</a></h1>
        {{- else }}
        <p class="logo"><a href="{{ "" | absURL }}">{{ .Site.Title }}</a></p>
        {{- end }}
        {{- if .Site.Menus.main }}
        <ul class="menu">
          {{- range .Site.Menus.main }}
          <li>
            <a href="{{ .URL }}">{{ .Name }}</a>
          </li>
          {{- end }}
        </ul>
        {{- end }}
      </nav>
    </header>
    <main class="main">
